package com.qf.day12;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * 练习：
 * 给定一个包含小括号的字符串，例如"1+((a+b)/c)+5/(2+a)",请写一个方法判断该字符串中的小括号是否成对出现。
 */
public class StackDemo02 {

    public static void main(String[] args) {
        String s = "1+((a+b)/c)+5/(2+a)";

        boolean flag = testXkh(s);
        System.out.println(flag);
    }

    private static boolean testXkh(String s) {
        //创建栈对象
        LinkedList<Character> stack = new LinkedList<>();
        //2. 将s转换为char数组
        char[] charArray=s.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            if(charArray[i]=='('){
                //入栈
                stack.push(charArray[i]);
            }else if(charArray[i]==')'){
                if (stack.isEmpty() || stack.pop() != '('){
                    return false;
                }
            }
        }
        return stack.size()==0;
    }

}
